export default {
	// 为当前模块开启命名空间
	namespaced: true,
	// 模块的state数据
	/* state: ()=>({
		// 购物车的数组，用来储存购物车中的商品对象，每个商品对象信息都包含以下6个属性
		// {goods_id, goods_name,goods_price,goods_count,goods_small-logo,goods_state}
		cart: []
	}), */
	state:{
		cart: JSON.parse(uni.getStorageSync('cart') || '[]'),
		a:"a"
	},
	//
	mutations:{
		// 加入购物车
		addToCart(state,goods){
			// 根据商品id判断这个商品是否在购物车中存在
			//存在就goods_count+1,不存在就添加这个商品
			const findResult = state.cart.find(x=>x.goods_id == goods.goods_id)
			
			if(!findResult){
				state.cart.push(goods)
			}else{
				findResult.goods_count++
			}
			
			this.commit('m_cart/saveStorage')
		},
		// 让加入购物车的数据存在内存中
		saveStorage(state){
			uni.setStorageSync('cart',JSON.stringify(state.cart))
		},
		// 更新购物车中商品的内容
		updateGoodsContent(state, goods){
			const result = state.cart.find(x=>x.goods_id == goods.goods_id)
			if(result){
				if(goods.goods_type=='check'){
					// 更新购物车中商品的选中状态
					result.goods_state = goods.goods_state;
				}else if(goods.goods_type=='num'){
					// 更改购物车中商品的数量
					result.goods_count = +goods.goods_count;
				}
				this.commit('m_cart/saveStorage')
			}
		},
		// 删除商品
		deleteGoods(state,goods){
			state.cart = state.cart.filter(x=>x.goods_id!=goods.goods_id);
			// console.log('state', state.cart)
			this.commit('m_cart/saveStorage')
		},
		//更新所有商品的选中状态
		updateGoodsState(state,check){
			state.cart.forEach(x=>x.goods_state=check)
			this.commit('m_cart/saveStorage')
		}
		
	},
	getters:{
		// 计算购物车中商品
		cartNum(state){
			let num = 0;
			state.cart.forEach(item=>{
				num+=item.goods_count
			})
			return num
		},
		// 计算勾选的商品
		acountNum(state){
			return state.cart.filter(x=>x.goods_state).reduce((total,item)=>total+=item.goods_count, 0)
		},
		// 总金额
		totalPrice(state){
			return state.cart.filter(x=>x.goods_state).reduce((total,item)=>total+=(item.goods_count * item.goods_price), 0).toFixed(2)
		}
	}
}